Future Branches { beyond Speculative Execution

نویسندگان

  • Bill Appelbe
  • Reid Harmon
  • Maurizio Vitale
  • Sri Doddapaneni
  • Scott Wills
چکیده

The performance and hardware complexity of superscalar architectures is hindered by conditional branch instructions. When conditional branches are encountered in a program, the instruction fetch unit must rapidly predict the branch predicate and begin speculatively fetching instructions with no loss of instruction throughput. Speculative execution increases hardware cost, since speculative instructions must be cleanly aborted if the branch is mis-predicted. Speculative execution also does not scale well for increasingly superscalar architectures, since mis-prediction probabilities and penalties grow as more branches are encountered. The future branch is an additional instruction that helps overcome the performance bottleneck of conditional branches. A future branch separates the speciication of a impending branch (and the conditional predicate) from the actual branch location. The future branch instruction includes a branch source address (the location of the impending conditional branch) in addition to the branch target. It begins computing the branch predicate immediately, prior to the branch source address being reached. If a future branch is scheduled early enough, the branch predicate can be resolved before the actual branch is encountered, thus avoiding speculative execution. This papers includes a detailed hardware design and cost evaluation for an implementation of the future branch for the Power PC 604. In addition, we describe the compiler algorithms and technology needed to generate future branch instructions. Further, we provide preliminary results, using a micro-architecture simulator, showing the performance gains obtained by using future branches.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The Effect of Speculative Execution on Cache Performance

Superscalar microprocessors obtain high performance by exploiting parallelism at the instruction level. To effectively use the instruction-level parallelism found in general purpose, non-numeric code, future processors will need to speculatively execute far beyond instruction fetch limiting conditional branches. One result of this deep speculation is an increase in the number of instruction and...

متن کامل

Modified Architectural Support for predicate execution of Instruction level parallelism

Utilizing speculative execution alone to extract instruction level parallelism in the presence of branches has performance limitation .The fundamental limitation is that speculation eliminates dependencies between instructions and branches, but does not remove the branches themselves. To overcome this drawback, predicate execution is investigated. Predicate or guarded execution enables a compil...

متن کامل

Instruction Recycling on a Multiple-Path Processor

Processors that can simultaneously execute multiple paths of execution will only exacerbate the fetch bandwidth problem already plaguing conventional processors. On a multiple-path processor, which speculatively executes less likely paths of hard-to-predict branches, the work done along a speculative path is normally discarded if that path is found to be incorrect. Instead, it can be beneficial...

متن کامل

Simultaneous Speculation Scheduling - A Technique for Speculative Dual Path Execution

Commodity microprocessors uniformly apply branch prediction and single path speculative execution to all kinds of program branches and suuer from the high misprediction penalty which is caused by branches with low prediction accuracy and, in particular, by branches that are unpredictable. The Simultaneous Speculation Scheduling (S 3) technique removes such penalties by a combination of compiler...

متن کامل

The E ect of Speculatively Updating Branch

Recent research 6] has suggested that the branch history register need not contain the outcomes of the most recent branches in order for the Two-Level Adaptive Branch Predictor to work well. From this result, it is tempting to conclude that the branch history register need not be speculatively updated. This paper revis-its this work and explains when the most recent branch outcomes can be omitt...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1997